Introducción

El archivo con la información se obtuvo del repositorio de Adolfo de Unanue Tiscareño [https://github.com/nanounanue/itam-dm/tree/master/data/algas] (https://github.com/nanounanue/itam-dm/tree/master/data/algas).

La base de datos “algas” proviene de la 1999 Computational Intelligence and Learning (COIL) competition, ésta contiene mediciones de concentraciones químicas en los rios y densidades de algas.

La base de datos se obtuvo de un estudio sobre calidad del agua, la muestra se tomó en sitios de diferentes ríos europeos durante un periodo de aproximadamente un año. Las muestras fueron analizadas con varias sustancias químicas y en paralelo fueron recolectadas muestras de algas para determinar la distribución poblacional de éstas.

Variables

La base consta de 18 variables que corresponden a la estación del año en la que la muestra fue tomada, la medida del río, la velocidad del fluido, 8 valores de concentraciones químicas relevantes para la distribución poblacional de algas. Las últimas 7 variables corresponden a la distribución de diferentes tipos de algas, donde los valores 0.0 significan que las frecuencias son muy pequeñas.

El set contiene 18 atributos en el siguiente orden:

campo atributo valores tipo
1 temporada spring, summer, autumn, winter categórica
2 tamaño del río small, medium, large categórica
3 velocidad low, medium, large categórica
4-11 concentraciones químicas reales positivos continua
12-18 distribución de diferentes tipos de algas reales positivos continua

Los NA están codificados como XXXXXXX.

Estructura general

Se muestra la estructura general de la base

## Source: local data frame [200 x 18]
## 
##    temporada tamaño velocidad mxPH mnO2    C1    NO3    NO4   oPO4    PO4
## 1     winter  small    medium 8.00  9.8 60.80  6.238 578.00 105.00 170.00
## 2     spring  small    medium 8.35  8.0 57.75  1.288 370.00 428.75 558.75
## 3     autumn  small    medium 8.10 11.4 40.02  5.330 346.67 125.67 187.06
## 4     spring  small    medium 8.07  4.8 77.36  2.302  98.18  61.18 138.70
## 5     autumn  small    medium 8.06  9.0 55.35 10.416 233.70  58.22  97.58
## 6     winter  small      high 8.25 13.1 65.75  9.248 430.00  18.25  56.67
## 7     summer  small      high 8.15 10.3 73.25  1.535 110.00  61.25 111.75
## 8     autumn  small      high 8.05 10.6 59.07  4.990 205.67  44.67  77.43
## 9     winter  small    medium 8.70  3.4 21.95  0.886 102.75  36.30  71.00
## 10    winter  small      high 7.93  9.9  8.00  1.390   5.80  27.25  46.60
## ..       ...    ...       ...  ...  ...   ...    ...    ...    ...    ...
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
##   a5 (dbl), a6 (dbl), a7 (dbl)

Podemos observar las 18 diferentes variables que contiene la base, donde las 3 primeras parecen ser categóricas y el resto numéricas.

Tamaño

Se muestra la dimensión de la base.

## [1] 200  18

La base contiene 200 registros para cada una de las 18 variables.

Columnas

Se muestran los nombres de la base.

##  [1] "temporada" "tamaño"    "velocidad" "mxPH"      "mnO2"     
##  [6] "C1"        "NO3"       "NO4"       "oPO4"      "PO4"      
## [11] "Chla"      "a1"        "a2"        "a3"        "a4"       
## [16] "a5"        "a6"        "a7"

Estructura

Se muestra la estructura de la base.

## Classes 'tbl_df', 'tbl' and 'data.frame':    200 obs. of  18 variables:
##  $ temporada: chr  "winter" "spring" "autumn" "spring" ...
##  $ tamaño   : chr  "small" "small" "small" "small" ...
##  $ velocidad: chr  "medium" "medium" "medium" "medium" ...
##  $ mxPH     : num  8 8.35 8.1 8.07 8.06 8.25 8.15 8.05 8.7 7.93 ...
##  $ mnO2     : num  9.8 8 11.4 4.8 9 13.1 10.3 10.6 3.4 9.9 ...
##  $ C1       : num  60.8 57.8 40 77.4 55.4 ...
##  $ NO3      : num  6.24 1.29 5.33 2.3 10.42 ...
##  $ NO4      : num  578 370 346.7 98.2 233.7 ...
##  $ oPO4     : num  105 428.8 125.7 61.2 58.2 ...
##  $ PO4      : num  170 558.8 187.1 138.7 97.6 ...
##  $ Chla     : num  50 1.3 15.6 1.4 10.5 ...
##  $ a1       : num  0 1.4 3.3 3.1 9.2 15.1 2.4 18.2 25.4 17 ...
##  $ a2       : num  0 7.6 53.6 41 2.9 14.6 1.2 1.6 5.4 0 ...
##  $ a3       : num  0 4.8 1.9 18.9 7.5 1.4 3.2 0 2.5 0 ...
##  $ a4       : num  0 1.9 0 0 0 0 3.9 0 0 2.9 ...
##  $ a5       : num  34.2 6.7 0 1.4 7.5 22.5 5.8 5.5 0 0 ...
##  $ a6       : num  8.3 0 0 0 4.1 12.6 6.8 8.7 0 0 ...
##  $ a7       : num  0 2.1 9.7 1.4 1 2.9 0 0 0 1.7 ...

Aparentemente no se observa ninguna discrepancia entre los nombres de las variables y la información que se presenta, tenemos que las tres primeras variables corresponden a datos de tipo caracter, que representan diferentes categorías; mientas que el resto de las variables son datos numéricos. Todo lo anterior parece acorde a la descripción que tenemos de la base.

## [1] "Las categorias de la variable temporada son:"
## [1] "winter" "spring" "autumn" "summer"
## [1] "Las categorias de la variable tamaño son:"
## [1] "small"  "medium" "large"
## [1] "Las categorias de la variable velocidad son:"
## [1] "medium" "high"   "low"
## [1] "La estructura de las variables númericas sobre concentraciones químicas es:"
## Classes 'tbl_df', 'tbl' and 'data.frame':    200 obs. of  8 variables:
##  $ mxPH: num  8 8.35 8.1 8.07 8.06 8.25 8.15 8.05 8.7 7.93 ...
##  $ mnO2: num  9.8 8 11.4 4.8 9 13.1 10.3 10.6 3.4 9.9 ...
##  $ C1  : num  60.8 57.8 40 77.4 55.4 ...
##  $ NO3 : num  6.24 1.29 5.33 2.3 10.42 ...
##  $ NO4 : num  578 370 346.7 98.2 233.7 ...
##  $ oPO4: num  105 428.8 125.7 61.2 58.2 ...
##  $ PO4 : num  170 558.8 187.1 138.7 97.6 ...
##  $ Chla: num  50 1.3 15.6 1.4 10.5 ...
## [1] "La estructura de las variables númericas sobre distribuión de los diferentes tipos de algas es:"
## Classes 'tbl_df', 'tbl' and 'data.frame':    200 obs. of  7 variables:
##  $ a1: num  0 1.4 3.3 3.1 9.2 15.1 2.4 18.2 25.4 17 ...
##  $ a2: num  0 7.6 53.6 41 2.9 14.6 1.2 1.6 5.4 0 ...
##  $ a3: num  0 4.8 1.9 18.9 7.5 1.4 3.2 0 2.5 0 ...
##  $ a4: num  0 1.9 0 0 0 0 3.9 0 0 2.9 ...
##  $ a5: num  34.2 6.7 0 1.4 7.5 22.5 5.8 5.5 0 0 ...
##  $ a6: num  8.3 0 0 0 4.1 12.6 6.8 8.7 0 0 ...
##  $ a7: num  0 2.1 9.7 1.4 1 2.9 0 0 0 1.7 ...

Observaciones

Se muestran las primeras observaciones que contiene la base.

## Source: local data frame [6 x 18]
## 
##   temporada tamaño velocidad mxPH mnO2    C1    NO3    NO4   oPO4    PO4
## 1    winter  small    medium 8.00  9.8 60.80  6.238 578.00 105.00 170.00
## 2    spring  small    medium 8.35  8.0 57.75  1.288 370.00 428.75 558.75
## 3    autumn  small    medium 8.10 11.4 40.02  5.330 346.67 125.67 187.06
## 4    spring  small    medium 8.07  4.8 77.36  2.302  98.18  61.18 138.70
## 5    autumn  small    medium 8.06  9.0 55.35 10.416 233.70  58.22  97.58
## 6    winter  small      high 8.25 13.1 65.75  9.248 430.00  18.25  56.67
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
##   a5 (dbl), a6 (dbl), a7 (dbl)

Se muestran las últimas observaciones que contiene la base.

## Source: local data frame [6 x 18]
## 
##     temporada tamaño velocidad mxPH mnO2     C1   NO3    NO4  oPO4    PO4
## 195    summer  large    medium  8.5  7.9  12.44 2.586  96.67 19.11  61.44
## 196    autumn  large    medium  8.4  8.4  17.38 3.833  83.75 53.62  79.75
## 197    spring  large    medium  8.3 10.6  14.32 3.200 125.33 35.33  75.90
## 198    autumn  large    medium  8.2  7.0 139.99 2.978  60.11 78.33 140.22
## 199    winter  large    medium  8.0  7.6     NA    NA     NA    NA     NA
## 200    summer  large    medium  8.5  6.7  82.85 2.800  27.07 64.00 140.52
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
##   a5 (dbl), a6 (dbl), a7 (dbl)

Se muestra un grupo de observaciones que contiene la base que fueron seleccionadas aleatoriamente.

## Source: local data frame [6 x 18]
## 
##     temporada tamaño velocidad mxPH mnO2     C1   NO3     NO4  oPO4   PO4
## 161    spring  large       low 9.00  5.8     NA 0.900  142.00 102.0 186.0
## 187    winter  large       low 8.70 11.7  22.45 3.765   88.18  41.3  85.4
## 41     winter  small    medium 8.00  5.5  77.00 6.096  122.85 143.7 296.0
## 13     winter  small      high 7.74  9.6   5.00 1.223   27.29  12.0  17.0
## 133    winter medium    medium 7.90  9.8 194.75 6.513 3466.66  23.0 173.8
## 142    spring medium      high 7.80  9.5   8.30 1.670   34.00  16.8  35.2
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
##   a5 (dbl), a6 (dbl), a7 (dbl)

Sumario Estadístico

Se muestra el resumen estadístico de la base, donde aparentemente no se observa algo raro. Se puede identificar es que hay variables con valores faltantes y que los valores para las últimas 7 variables son relativamente pequeños.

##   temporada            tamaño           velocidad              mxPH     
##  Length:200         Length:200         Length:200         Min.   :5.60  
##  Class :character   Class :character   Class :character   1st Qu.:7.70  
##  Mode  :character   Mode  :character   Mode  :character   Median :8.06  
##                                                           Mean   :8.01  
##                                                           3rd Qu.:8.40  
##                                                           Max.   :9.70  
##                                                           NA's   :1     
##       mnO2             C1             NO3             NO4       
##  Min.   : 1.50   Min.   :  0.2   Min.   : 0.05   Min.   :    5  
##  1st Qu.: 7.72   1st Qu.: 11.0   1st Qu.: 1.30   1st Qu.:   38  
##  Median : 9.80   Median : 32.7   Median : 2.67   Median :  103  
##  Mean   : 9.12   Mean   : 43.6   Mean   : 3.28   Mean   :  501  
##  3rd Qu.:10.80   3rd Qu.: 57.8   3rd Qu.: 4.45   3rd Qu.:  227  
##  Max.   :13.40   Max.   :391.5   Max.   :45.65   Max.   :24064  
##  NA's   :2       NA's   :10      NA's   :2       NA's   :2      
##       oPO4            PO4             Chla              a1       
##  Min.   :  1.0   Min.   :  1.0   Min.   :  0.20   Min.   : 0.00  
##  1st Qu.: 15.7   1st Qu.: 41.4   1st Qu.:  2.00   1st Qu.: 1.50  
##  Median : 40.1   Median :103.3   Median :  5.47   Median : 6.95  
##  Mean   : 73.6   Mean   :137.9   Mean   : 13.97   Mean   :16.92  
##  3rd Qu.: 99.3   3rd Qu.:213.8   3rd Qu.: 18.31   3rd Qu.:24.80  
##  Max.   :564.6   Max.   :771.6   Max.   :110.46   Max.   :89.80  
##  NA's   :2       NA's   :2       NA's   :12                      
##        a2              a3              a4              a5       
##  Min.   : 0.00   Min.   : 0.00   Min.   : 0.00   Min.   : 0.00  
##  1st Qu.: 0.00   1st Qu.: 0.00   1st Qu.: 0.00   1st Qu.: 0.00  
##  Median : 3.00   Median : 1.55   Median : 0.00   Median : 1.90  
##  Mean   : 7.46   Mean   : 4.31   Mean   : 1.99   Mean   : 5.06  
##  3rd Qu.:11.38   3rd Qu.: 4.92   3rd Qu.: 2.40   3rd Qu.: 7.50  
##  Max.   :72.60   Max.   :42.80   Max.   :44.60   Max.   :44.40  
##                                                                 
##        a6              a7      
##  Min.   : 0.00   Min.   : 0.0  
##  1st Qu.: 0.00   1st Qu.: 0.0  
##  Median : 0.00   Median : 1.0  
##  Mean   : 5.96   Mean   : 2.5  
##  3rd Qu.: 6.92   3rd Qu.: 2.4  
##  Max.   :77.60   Max.   :31.6  
## 

Identificación de id

Dado que la base no cuenta con una columna correspondiente al id, agregamos la variable correspondiente.

Limpieza de metadatos

Verificamos el formato de los nombres de las variables y observamos que no todos tienen el formato deseado, por lo que aplicaremos una limpieza.

##  [1] "temporada" "tamaño"    "velocidad" "mxPH"      "mnO2"     
##  [6] "C1"        "NO3"       "NO4"       "oPO4"      "PO4"      
## [11] "Chla"      "a1"        "a2"        "a3"        "a4"       
## [16] "a5"        "a6"        "a7"

Recodificación

Aparentemente la base no requiere ninguna recodificación. Las variables categóricas tienen a lo más 4 niveles y no hay variables de fechas.

Ajuste de formatos

Se muestran las diferentes clases de las variables.

##   temporada      tamaño   velocidad        mxPH        mnO2          C1 
## "character" "character" "character"   "numeric"   "numeric"   "numeric" 
##         NO3         NO4        oPO4         PO4        Chla          a1 
##   "numeric"   "numeric"   "numeric"   "numeric"   "numeric"   "numeric" 
##          a2          a3          a4          a5          a6          a7 
##   "numeric"   "numeric"   "numeric"   "numeric"   "numeric"   "numeric"

Tenemos que las tres primeras variables son de tipo caracter y el resto numéricas, aparentemente el único ajuste que debemos realizar es definir como factores a las variables tipo caracter, para que posteriormente puedan ser utilizadas en el análisis.

Normalizar niveles

Removemos espacios, puntuaciones, etc. en los niveles de los factores. En este caso, la base no requirió de normalizar niveles.

Transformación de variables

Aparentemente no es necesario hacer ninguna transformación a los datos. En el análisis gráfico trataremos de identificar si se requiere alguna transformación.

Verificación de los cambios

Una vez aplicado nuestro proceso de preparación para limpieza de metadatos y ajuste de formatos tenemos lo siguiente:

Verificamos como quedan los nombres de las variables de la base.

##  [1] "temporada" "tamanio"   "velocidad" "mxph"      "mno2"     
##  [6] "c1"        "no3"       "no4"       "opo4"      "po4"      
## [11] "chla"      "a1"        "a2"        "a3"        "a4"       
## [16] "a5"        "a6"        "a7"        "id"

Así queda el ajuste sobre el tipo de variables.

## temporada   tamanio velocidad      mxph      mno2        c1       no3 
##  "factor"  "factor"  "factor" "numeric" "numeric" "numeric" "numeric" 
##       no4      opo4       po4      chla        a1        a2        a3 
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
##        a4        a5        a6        a7        id 
## "numeric" "numeric" "numeric" "numeric" "integer"

Análisis gráfico

Con la finalidad de observar el comportamiento de las variables que contiene la base, se obtienen las gráficas correspondientes para cada una de las variables.

Asimismo, se obtienen gráficas de la relación entre cada par de variables que se podría tener.

plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18plot of chunk unnamed-chunk-18

Apéndice: Ambiente

## R version 3.1.1 (2014-07-10)
## Platform: i386-w64-mingw32/i386 (32-bit)
## 
## locale:
## [1] LC_COLLATE=Spanish_Mexico.1252  LC_CTYPE=Spanish_Mexico.1252   
## [3] LC_MONETARY=Spanish_Mexico.1252 LC_NUMERIC=C                   
## [5] LC_TIME=Spanish_Mexico.1252    
## 
## attached base packages:
## [1] grid      stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
## [1] corrplot_0.73          stringr_0.6.2          lubridate_1.3.3       
## [4] directlabels_2013.6.15 quadprog_1.5-5         ggplot2_1.0.0         
## [7] dplyr_0.2              tidyr_0.1              plyr_1.8.1            
## 
## loaded via a namespace (and not attached):
##  [1] assertthat_0.1   colorspace_1.2-4 digest_0.6.4     evaluate_0.5.5  
##  [5] formatR_1.0      gtable_0.1.2     htmltools_0.2.4  knitr_1.6       
##  [9] labeling_0.3     MASS_7.3-33      memoise_0.2.1    munsell_0.4.2   
## [13] parallel_3.1.1   proto_0.3-10     Rcpp_0.11.2      reshape2_1.4    
## [17] rmarkdown_0.2.64 scales_0.2.4     tools_3.1.1      yaml_2.1.13